package com.suning.sawp.intf.dao.task;

import java.util.List;
import java.util.Map;

import com.suning.sawp.dto.task.QueryRegionAssign;
import com.suning.sawp.po.task.CommTaskHq;
import com.suning.sawp.po.task.CommTaskRegion;

public interface CommTaskHqDaoService {

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     *
     * @param queryCon
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    int queryCommCount(CommTaskHq queryCon);
    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     *
     * @param queryCon
     * @param pageNo
     * @param pageSize
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    List<CommTaskHq> queryCommList(CommTaskHq queryCon,Integer pageNo,Integer pageSize);
    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     *
     * @param comm
     * @param Id
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    boolean updateCommById(CommTaskHq comm,Integer Id);
    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     *
     * @param Id
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    CommTaskHq queryCommTaskHq(Integer Id);
    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     *
     * @param parmMap
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    void batchInsert(Map<String, Object>[] parmMap);
    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     *
     * @param Id
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    void softDeleteCommById(Integer Id);
    
    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     *
     * @param Id
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    void deleteCommById(Integer Id);
    
    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     *
     * @param commclassifyCode
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    List<QueryRegionAssign> queryCommRegionAssign(Integer commclassifyCode,Integer taskNo);
    
    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     *
     * @param taskNo
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    List<String> queryCommIdAndDestnum(Integer taskNo);
    
    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     *
     * @param taskNo
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    List<String> queryRegionCommIdAndDestnum(Integer commClassifyCode);
    /**
     * 
     * 功能描述: 批量更新<br>
     * 〈功能详细描述〉
     *
     * @param paramMaps
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    void batchUpdate(Map<String,Object>[] paramMaps);
    /**
     * 
     * 功能描述: 根据商品归类编码批量更新商品信息<br>
     * 〈功能详细描述〉
     *
     * @param paramMaps
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    void batchUpdateById(Map<String,Object>[] paramMaps);
    
    /**
     * 
     * 功能描述: 批量更新<br>
     * 〈功能详细描述〉
     *
     * @param paramMaps
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    void batchUpdateRegionComm(Map<String,Object>[] paramMaps);
    
    /**
     * 
     * 功能描述:查询大区子任务编码 <br>
     * 〈功能详细描述〉
     *
     * @param parTaskNo
     * @param regionCode
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    Integer queryRegionTaskNo(Integer parTaskNo,String regionCode);
    /**
     * 
     * 功能描述: 批量插入大区商品表<br>
     * 〈功能详细描述〉
     *
     * @param insertMaps
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    void batchInsertRegionComm(Map<String,Object>[] insertMaps);
    /**
     * 
     * 功能描述: 删除主推商品<br>
     * 〈功能详细描述〉
     *
     * @param commClassifyCode
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    void softDeleteComm(Integer commClassifyCode);
    /**
     * 
     * 功能描述: 插入总部商品表<br>
     * 〈功能详细描述〉
     *
     * @param commTask
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    Integer insertCommTask(CommTaskHq commTask);
    /**
     * 
     * 功能描述:插入大区商品 <br>
     * 〈功能详细描述〉
     *
     * @param commRegion
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    Integer insertCommRegion(CommTaskRegion commRegion);
    /**
     * 
     * 功能描述: 根据大区任务编号修改大区任务状态<br>
     * 〈功能详细描述〉
     *
     * @param updateMaps
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    void updateRegionTaskStatus(Integer status,Integer taskNo);
    /**
     * 
     * 功能描述:判断商品是否已分到大区 <br>
     * 〈功能详细描述〉
     *
     * @param regionTaskNo
     * @param commClassifyCode
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    boolean isCommRegionExist(Integer regionTaskNo,Integer commClassifyCode);
    /**
     * 
     * 功能描述: 判断任务下商品是否都分配到大区<br>
     * 〈功能详细描述〉
     *
     * @param taskNo
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    boolean isAssignAllComm(Integer taskNo);
}
